// jqModal.js
/*
 * jqModal - Minimalist Modaling with jQuery
 * (http://dev.iceburg.net/jquery/jqModal/)
 * 
 * Copyright (c) 2007,2008 Brice Burgess <bhb@iceburg.net> Dual licensed under
 * the MIT and GPL licenses: http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 * 
 * $Version: 03/01/2009 +r14
 */
(function($) {
	$.fn.jqm = function(o) {
		var p = {
			overlay : 50,
			overlayClass : 'jqmOverlay',
			closeClass : 'jqmClose',
			trigger : '.jqModal',
			ajax : F,
			ajaxText : '',
			target : F,
			modal : F,
			toTop : F,
			onShow : F,
			onHide : F,
			onLoad : F
		};
		return this.each(function() {
			if (this._jqm)
				return H[this._jqm].c = $.extend({}, H[this._jqm].c, o);
			s++;
			this._jqm = s;
			H[s] = {
				c : $.extend(p, $.jqm.params, o),
				a : F,
				w : $(this).addClass('jqmID' + s),
				s : s
			};
			if (p.trigger)
				$(this).jqmAddTrigger(p.trigger);
		});
	};

	$.fn.jqmAddClose = function(e) {
		return hs(this, e, 'jqmHide');
	};
	$.fn.jqmAddTrigger = function(e) {
		return hs(this, e, 'jqmShow');
	};
	$.fn.jqmShow = function(t) {
		return this.each(function() {
			t = t || window.event;
			$.jqm.open(this._jqm, t);
		});
	};
	$.fn.jqmHide = function(t) {
		return this.each(function() {
			t = t || window.event;
			$.jqm.close(this._jqm, t)
		});
	};

	$.jqm = {
		hash : {},
		open : function(s, t) {
			
			var h = H[s], c = h.c, cc = '.' + c.closeClass, z = (parseInt(h.w
					.css('z-index'))), z = (z > 0) ? z : 3000, o = $('<div></div>')
					.css({
						height : '100%',
						width : '100%',
						position : 'fixed',
						left : 0,
						top : 0,
						'z-index' : z - 1,
						opacity : c.overlay / 100
					});
			if (h.a)
				return F;
			h.t = t;
			h.a = true;
			h.w.css('z-index', z);
			if (c.modal) {
				if (!A[0])
					L('bind');
				A.push(s);
			} else if (c.overlay > 0){
				//liukaiyi 去掉遮罩上关闭效果
				//h.w.jqmAddClose(o);
			}else
				o = F;

			h.o = (o) ? o.addClass(c.overlayClass).prependTo('body') : F;
			if(ie6){
				$('html,body').css({height:'100%',width:'100%'});
				if(o){
					o=o.css({position:'absolute'})[0];
					for(var y in {Top:1,Left:1})
						o.style.setExpression(y.toLowerCase(),"(_=(document.documentElement.scroll"+y+" || document.body.scroll"+y+"))+'px'");
				}
			}
			if (c.ajax) {
				var r = c.target || h.w, u = c.ajax, r = (typeof r == 'string')
						? $(r, h.w)
						: $(r), u = (u.substr(0, 1) == '@') ? $(t).attr(u
						.substring(1)) : u;
				r.html(c.ajaxText).load(u, function() {
					if (c.onLoad)
						c.onLoad.call(this, h);
					if (cc)
						h.w.jqmAddClose($(cc, h.w));
					e(h);
				});
			} else if (cc)
				h.w.jqmAddClose($(cc, h.w));

			if (c.toTop && h.o)
				h.w.before('<span id="jqmP' + h.w[0]._jqm + '"></span>')
						.insertAfter(h.o);
			(c.onShow) ? c.onShow(h) : h.w.show();
			e(h);
			return F;
		},
		close : function(s) {
			var h = H[s];
			if (!h.a)
				return F;
			h.a = F;
			if (A[0]) {
				A.pop();
				if (!A[0])
					L('unbind');
			}
			if (h.c.toTop && h.o)
				$('#jqmP' + h.w[0]._jqm).after(h.w).remove();
			if (h.c.onHide)
				h.c.onHide(h);
			else {
				h.w.hide();
				if (h.o)
					h.o.remove();
			}
			if(ie6){
				$('html,body').css({height:'auto',width:'auto'});
			}
			return F;
		},
		params : {}
	};
	var s = 0, H = $.jqm.hash, A = [], ie6 = $.browser.msie
			&& ($.browser.version == "6.0"), F = false, i = $('<iframe src="javascript:false;document.write(\'\');" class="jqm"></iframe>')
			.css({
				opacity : 0
			}), e = function(h) {
		if (ie6)
			if (h.o)
				h.o.html('<p style="width:100%;height:100%"/>').prepend(i);
			else if (!$('iframe.jqm', h.w)[0])
				h.w.prepend(i);
		f(h);
	}, f = function(h) {
		try {
			$(':input:visible', h.w)[0].focus();
		} catch (_) {
		}
	}, L = function(t) {
		$(document)[t]("keypress", m)[t]("keydown", m)[t]("mousedown", m);
	}, m = function(e) {
		var h = H[A[A.length - 1]], r = (!$(e.target).parents('.jqmID' + h.s)[0]);
		if (r)
			f(h);
		return !r;
	}, hs = function(w, t, c) {
		return w.each(function() {
			var s = this._jqm;
			$(t).each(function() {
				if (!this[c]) {
					this[c] = [];
					$(this).click(function() {
						for (var i in {
							jqmShow : 1,
							jqmHide : 1
						})
							for (var s in this[i])
								if (H[this[i][s]])
									H[this[i][s]].w[i](this);
						return F;
					});
				}
				this[c].push(s);
			});
		});
	};
})(jQuery);

/*
 * jqDnR - Minimalistic Drag'n'Resize for jQuery.
 * 
 * Copyright (c) 2007 Brice Burgess <bhb@iceburg.net>, http://www.iceburg.net
 * Licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * 
 * $Version: 2007.08.19 +r2
 */

(function($) {
	$.fn.jqDrag = function(h) {
		return i(this, h, 'd');
	};
	$.fn.jqResize = function(h) {
		return i(this, h, 'r');
	};
	$.jqDnR = {
		dnr : {},
		e : 0,
		drag : function(v) {
			if (M.k == 'd'){
				var top = 0;
				var left = 0;
				if($(window).height()-E.height()<M.Y + v.pageY - M.pY){
					top = $(window).height()-E.height();
				}else {
					top = Math.max(M.Y + v.pageY - M.pY,0);
				}
				if($(window).width()-E.width()<M.X + v.pageX - M.pX-parseInt((E.css("margin-left")).match(/\d+/))){
					left = $(window).width()-E.width()+parseInt((E.css("margin-left")).match(/\d+/));
				}else{
					left =  Math.max(M.X + v.pageX - M.pX,parseInt((E.css("margin-left")).match(/\d+/)))
				}				
				E.css({
					left : left,
					top :  top
				});
			}else
				E.css({
					width : Math.max(v.pageX - M.pX + M.W, 0),
					height : Math.max(v.pageY - M.pY + M.H, 0)
				});
			return false;
		},
		stop : function() {
			E.stop().animate({opacity:M.o},100,function(){
				if (M.o==1) E.css("opacity","").css("filter","");
			});
			if(this.releaseCapture){
				this.releaseCapture();
			}else{
				$('#func_dialog_inner .iframeMark').hide();
			}
			$(document).unbind('mousemove', J.drag).unbind('mouseup', J.stop);
		}
	};
	var J = $.jqDnR, M = J.dnr, E = J.e, i = function(e, h, k) {
		return e.each(function() {
			h = (h) ? $(h, e) : e;
			h.bind('mousedown', {
				e : e,
				k : k
			}, function(v) {
				var d = v.data, p = {};
				E = d.e;
				// attempt utilization of dimensions plugin to fix IE issues
				if (E.css('position') != 'relative') {
					try {
						p = E.position();
					} catch (e) {
					}
				}
				M = {
					X : p.left || f('left') || 0,
					Y : p.top || f('top') || 0,
					W : f('width') || E[0].scrollWidth || 0,
					H : f('height') || E[0].scrollHeight || 0,
					pX : v.pageX,
					pY : v.pageY,
					k : d.k,
					o : E.css('opacity')
				};
				if(this.setCapture){
					this.setCapture();
				}else{
					$('#func_dialog_inner .iframeMark').show();
				}
				E.stop().animate({opacity:0.8},100);
				$(document).mousemove($.jqDnR.drag).mouseup($.jqDnR.stop);
				return false;
			});
		});
	}, f = function(k) {
		return parseInt(E.css(k)) || false;
	};
})(jQuery);